package com.three.mapper;

import com.three.entity.Staff;
import com.three.entity.Stafftransfer;
import com.three.vo.DzDiaoLiVo;
import com.three.vo.StaffInfoVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author 天天好心情
* @description 针对表【staff】的数据库操作Mapper
* @createDate 2024-10-21 14:29:19
* @Entity com.three.entity.Staff
*/
public interface StaffMapper {

    int deleteByPrimaryKey(Long id);

    int insert(Staff record);

    int insertSelective(Staff record);

    Staff selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Staff record);

    int updateByPrimaryKey(Staff record);

    Staff loginByNameAndPwd(@Param("staffname") String staffname, @Param("password") String password);//根据名字和密码查询

    //完成staff，branch，role，department四表联合查询
    List<Staff> getAllStaff(StaffInfoVo staffInfoVo);

    //根据staffid查询
    Staff checkStaffid(Integer staffid);
    //检查idcard
    Staff checkIdcard(String idcard);

    Staff checkPhone(String phone);

    //获取不是店长的所有人员工信息
    List<Staff> getStaff();
    //修改branchid和roleid
    int updateByBranchidRoleid(@Param("staffid") Integer staffid, @Param("branchid")Integer branchid);

    //查询某个branchid员工数量
    int selectByBranchidCount(Integer branchid);
    //查询离职员工
    List<Staff> selectByState(StaffInfoVo staffInfoVo);

    //将该员工所在店铺修改为传过来的，角色改为店长
    int updateDianZhang(@Param("branchid")Integer branchid,@Param("staffid") Integer staffid);
    //修改branchid和roleid
    int updateBranchRole(DzDiaoLiVo dzDiaoLiVo);

    //查询当前用户的所有信息
    Staff selectAllStaff(Staff staff);

    //根据deptid部门id查询该部该部门下的所有员工
    List<Staff> selectStaffByDeptId(Integer deptid);

    //修改密码
    int updatePassWord(@Param("password") String passWord,@Param("staffid") Integer staffid);

    //查找密码是否匹配
    String selectPhone(String phone);

    //查询门店下的所有员工数目
    Integer getStaffCounts(Integer branchid);

    //修改员工的部门和门店
    int updateBranchAndDept(@Param("staffid") Integer staffid,@Param("branchid") Integer newbranchid,@Param("deptid") Integer newdeptid);

    Staff selectStaffandBranch(Integer staffid);

}
